package cn.iocoder.yudao.module.system.framework.examscore.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;
import java.util.List;
import java.util.Map;

/**
 * 成绩导入模板配置类
 *
 * @author 芋道源码
 */
@ConfigurationProperties(prefix = "yudao.exam-score.template")
@Validated
@Data
public class ExamScoreTemplateProperties {

    /**
     * 模板数据源类型
     * 支持：default（默认硬编码）、config（配置文件）、database（数据库）、file（外部文件）
     */
    @NotEmpty(message = "模板数据源类型不能为空")
    private String sourceType = "default";

    /**
     * 外部文件路径（当sourceType为file时使用）
     */
    private String filePath;

    /**
     * 配置文件中的模板数据（当sourceType为config时使用）
     */
    private List<TemplateData> data;

    /**
     * 模板数据结构
     */
    @Data
    public static class TemplateData {
        /**
         * 学生ID
         */
        private Long studentId;

        /**
         * 学号
         */
        private String studentNo;

        /**
         * 学生姓名
         */
        private String studentName;

        /**
         * 各科成绩
         */
        private Map<String, String> scores;

        /**
         * 总分
         */
        private String totalScore;
    }
}